NoC(Network on Chip)基础 (6):Oblivious Routing 和 Adaptive Routing

您所在的位置:网站首页 oblivious 翻译 NoC(Network on Chip)基础 (6):Oblivious Routing 和 Adaptive Routing

NoC(Network on Chip)基础 (6):Oblivious Routing 和 Adaptive Routing

2024-04-06 21:18| 来源: 网络整理| 查看: 265

上一篇:NoC(Network on Chip)基础知识 (5):网络路由(Routing)介绍了 NoC 中路由的基础概念并列举了确定性路由的例子。

本篇文章将介绍 Oblivious Routing 以及 Adaptive Routing 。

文章目录 Oblivious Routing介绍Valiant's Randomized RoutingMinimal Oblivious Routing Adaptive Routing介绍Minimal Adaptive RoutingFully Adaptive Routing

Oblivious Routing 介绍

Oblivious Routing 指在选取 packet 的路由路径时,不考虑网络当前状态的路由方法。

这种方法实现简单且易于分析。

Oblivious Routing 路由方法需要在 局部性(locality)、均衡负载(load balance) 方面做取舍。

Valiant‘s Randomized Routing 首先将 packet 发送到随机节点,之后再向目的节点路由。这种算法能均衡任何 traffic pattern 情况下的负载,然而完全丢失了 locality。

Minimal Oblivious Routing 总是选取距离最近的路径作为路由。这种方法保留了 locality,然而在某些 traffic pattern 下,无法有效均衡负载,导致 throughput 极低。

Valiant’s Randomized Routing

一个 packet 希望从 s 发送至 d,首先会发送给一个随机选择的中间节点 x,之后再由 x 发向 d。

在这两阶段中,可以采用任意的路由算法。通常经验来讲,使用在 uniform traffic 条件下能有效均衡负载的路由算法工作效果更好。

由于中间节点的随机选择,每一阶段的数据传输均为 uniform random pattern。从总体上看,网络承受的总负载增加了一倍。

对于在 Torus 或 Mesh 拓扑中,两阶段的路由算法通常采取 dimention-order routing。 在这里插入图片描述

Minimal Oblivious Routing

Minimal oblivious routing 严格控制选择的路由路径为最短路径。

这种方法在层次化的拓扑结构中表现良好,能在兼顾 locality 的同时使负载均衡。

Folded-Clos(Fat-Tree) 拓扑结构:

从 s 向 d 发送数据包,会选择一个距离二者最近的共同祖先节点 x 作为中间节点,先由 s 发送至 x,再从 x 发送至 d。

下图展示了从1发送至6,可以有两条路径选择,经过0XXXA 或 经过0XXXB,二者都是距离最短的路径。 在这里插入图片描述 Torus 拓扑结构:

在 Torus 拓扑中的 Minimal Oblivious Routing,限制路由路径的中间节点位于最小象限之内(由 s 和 d 组成的长方形),并确定在每一维度上的移动方向是朝目标移动距离最短的方向。

下面展示了从 00 到 21 的多条路由路径。可以通过随机选择多条路径中的一条来均衡负载。

在这里插入图片描述

Torus 拓扑中采取 minimal oblivious 路由,在保留 locality 的方面表现较好,在 random traffic 中也能有效均衡负载。然而在某些最坏情况的 traffic 中,均衡负载的表现很差,如 tornado traffic。 (因为由于必须使用距离最短路径的缘故,只能使用象限内的节点作为中间节点。一旦某个较小象限内的数据传输较密集,就会造成严重的拥挤) Tornado Traffic

Adaptive Routing 介绍

适应性路由算法会使用网络当前状态(如队列占用情况等)作为决策信息,在多种选择中确定传输数据包的路径。

因为算法的执行依赖于网络状态,所以适应性路由往往与流控制策略密不可分。

一个出色的适应性路由算法,理论上讲会比 oblivious routing 更出色,因为他使用了网络的状态作为决策信息之一。然而在现实中,适应性路由在最坏情况下,性能非常糟糕。 很大程度上这是因为,在路由的决策节点上只能获取局部的拥塞状况,在将包导向局部最优的路径时,经常会导致全局的负载不均衡。

决策节点对于远端的拥塞情况的获知,主要通过流控制策略中 backpressure。 适应性路由采取 flit-based 或 packet-based 的流控制策略,使用包队列的占用情况作为估计局部拥塞情况的依据。 当一个节点的接收队列已满,就会向之前发送数据的节点传递 backpressure signal 令其停止发送数据。这会导致该节点接收队列的占满。Backpressure 沿着 traffic 的反方向传递。在 backpressure 传递给决策节点之前,它无法感知到远处的拥塞情况。 所以,能快速传递 backpressure 的流控制策略对于适应性路由至关重要,这会使决策节点更快地适应远处的拥塞状况。

以下面的情况作例子。 5 正在持续给 6 发送数据,占据了全部的带宽。3 此时希望给 7 发数据,有两条路径可以选择。 在这里插入图片描述 3 不能够直接感知到 5、6 之间的拥塞,只能通过 backpressure 间接感知。

3 开始的时候不知道5、6 拥塞了,直接向 7 发送数据。 包在 5 处被卡住,到 5 的接收队列满后,5 向 4 发送 backpressure,4不再发送包给5。 3 依旧给 4 发送数据,直到 4 的队列也满了,4 才向 3 发送 backpressure,3 感知到前方的拥塞。之后采取另一条逆时针路由路径。

Stiff Flow Control (较小的队列容量)更适用于 Adaptive Routing。 这可以使 backpressure 信号更快地从堵塞处传递给决策节点。

在 Torus 等更复杂拓扑中采用适应性路由,通常在每一跳根据局部信息作一次路由选择。这也会带来非全局最优的问题。

在下面的 Torus 由 00 向 23 发数据。 在 01 处,由于 01 到 02 轻度拥塞,所以选择了向 11 转发。 这导致了之后所走的路径都是重度拥塞。 在这里插入图片描述

Minimal Adaptive Routing

最短适应路由从所有最短路径中,在每一跳时,根据局部区域的网络状态选择下一跳的地址。

最短适应路由能在局部区域均衡负载,却不能有效地在全局情况下均衡负载。 且如果 source 与 destination 之间最短路径的多样性为 1,这种方法无法避免经过拥塞路径。(下图中由 20 向 23) 在这里插入图片描述

Fully Adaptive Routing

全适应路由,不再严格要求路由路径为最短路径。为了避免一些拥塞路段,包可以暂时向远离目的节点的方向作转发。我们称做出这种选择的行为 Misrouting。 在这里插入图片描述 全适应路由为了避免拥塞而绕路的同时,需要采取措施**限制活锁(Livelock)**的发生。 活锁指 packet 在网络中陷入了转发的循环,永远无法到达目的地。 在这里插入图片描述 避免活锁的方法有多种。

限制 Misrouting 的次数,达到次数上限后采用 Minimal Adaptive 方法。限制 Misrouting 的频率,每执行若干次 Minimal Routing 才能选择一次 Misrouting。


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3